package org.jeecg.modules.bim.service;

import org.jeecg.modules.bim.entity.BimStructureInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import org.jeecg.common.exception.JeecgBootException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import java.util.List;

/**
 * @Description: 模型构件信息表
 * @Author: chenliang
 * @Date: 2022-09-23
 * @Version: V1.0
 */
public interface IBimStructureInfoService extends IService<BimStructureInfo> {

    /**
     * 根节点父ID的值
     */
    public static final String ROOT_PID_VALUE = "0";

    /**
     * 树节点有子节点状态值
     */
    public static final String HASCHILD = "1";

    /**
     * 树节点无子节点状态值
     */
    public static final String NOCHILD = "0";

    /**
     * 新增节点
     */
    void addBimStructureInfo(BimStructureInfo bimStructureInfo);

    /**
     * 修改节点
     */
    void updateBimStructureInfo(BimStructureInfo bimStructureInfo) throws JeecgBootException;

    /**
     * 删除节点
     */
    void deleteBimStructureInfo(String id) throws JeecgBootException;

    /**
     * 查询所有数据，无分页
     */
    List<BimStructureInfo> queryTreeListNoPage(QueryWrapper<BimStructureInfo> queryWrapper);

    /**
     * 查询结构树
     */
    List<BimStructureInfo> getTreeList(BimStructureInfo bimStructureInfo);

    /**
     * 根据父节点查询所有子节点-以树结构返回
     *
     * @param info 父节点
     * @return 以树结构返回当前父节点所有子节点
     */
    List<BimStructureInfo> getChildByParentNode(BimStructureInfo info);
}
